Counterpoint: Why Linux will never be as secure OpenBSD
Set flame guns to kill. Please read the entire article before flaming
me, as many of your concerns/etc will probably be answered next week.
OpenBSD and Linux, two decidedly different operating systems. OpenBSD
claims to be "secure by default", and has undergone an extensive
code audit, so the question is: have I been hit in the head with a blunt
object, or what? Security is an extremely complex subject with a variety
of definitions. This article is an attempt to educate people, I personally
consider OpenBSD to be a reasonably "secure" operating system,
in some ways more secure then your average Linux distribution. However
people have a wide variety of needs when it comes to security, and some
of these needs are not met by Linux more so then OpenBSD. There are a
variety of security products and software suites for Linux currently available
and a number of security projects in the works that will have a significant
effect. Depending upon your exact needs, budget, level of expertise and
so on there is almost surely a security solution for Linux that will fit
your needs.
SubDomain, StackGuard & FormatGuard
WireX ships a hardened version of Linux using a number of security enhancements.
The most obvious would be SubDomain, which allows you to specify which
files a program may access and in what manner (read, write, execute or
list). This allows you to tightly contain software, you do not need to
make any changes to the software or go through the problems associated
with using chroot() (which for packages like Sendmail can be extremely
complex). There is no equivalent to SubDomain in OpenBSD. Other benefits
of WireX include StackGuard and FormatGuard, while it can be argued that
because OpenBSD's code has been audited it doesn't need StackGuard or
FormatGuard but the simple fact remains that buffer overflows and format
strings attacks are still being discovered in OpenBSD. The beauty of these
three technologies from WireX is that you do not need a huge amount of
expertise or time to implement, and SubDomain can protect software available
in binary only formats.
Openwall kernel patch
The Openwall kernel patch is a relatively simple set of kernel patches
that once compiled in will prevent or stop a number of problems. A non-executable
user stack area prevents various buffer overflows, and while it can be
circumvented it definitely raises the bar for attackers. Restricting links
and FIFO's in tmp is another feature, and again while OpenBSD has audited
it's code and removed most of the /tmp vulnerabilities there are no guarantees
about software in the ports package or binary only software. Once this
software is installed you do not need to do anything more, there is no
configuration required or additional setup when you install new software,
removing any chance of accidentally forgetting to protect software/etc.
Argus PitBull LX
PitBull LX is a commercial product for Linux that comes as a binary kernel
(and kernel headers if you want to create your own custom kernel) and
various utilities to configure the security settings. The primary benefit
PitBull LX offers is Mandatory Access Controls, one of the main differences
between this and Discretionary Access Controls (what Linux has by default)
is that not even root can tamper with files in a MAC capable system. Additionally
controls can be placed on network devices and even ports themselves, you
can specify that port 53 and all the files necessary for running BIND
are one security domain, if Bind is compromised it will not be able to
do anything outside it's domain (i.e. write to /etc/passwd). Controls
can also be placed on IPC (inter process communication) objects, allowing
for fine configurations of processes, files, network objects and so on.
This capability, while complicated and non-trivial allows for a certain
flexibility lacking in OpenBSD.
NSA SELinux
NSA SELinux is a set of kernel patches and modified utilities that allow
for extremely granular control of security settings that are similar (but
different) then PitBull LX. SELinux provides "Type Enforcement",
"Role-based Access Control" and "Multi-level Security"
(not to be confused with multi-level marketing). Basically anything you
can imagine is possible. You want to restrict port 80 to a certain process?
You can do that. Want to restrict a certain process from accessing files?
You can do that. Completely lock down the system so that even with root
level access very little damage can be done? You can do that. Unfortunately
this software is extremely non-trivial, and has a steep
LIDS
LIDS is a far less complicated project then PitBull LX or NSA SELinux.
LIDS provides a variety of features ranging from increased filesystem
protection to a number of capabilities that allow an administrator to
"lock" a system into a certain configuration that then requires
a significant amount of effort (i.e. console access or a reboot) to modify.
For example the "CAP_SYS_ADMIN" capability lets you restrict
the setting of the machines domainname, hostname, turning swap on or off,
the configuration of serial ports and so on. While OpenBSD does have a
somewhat similar system in the form of BSD securelevel LIDS is more flexible
in many respects.
Medusa DS9
Yet another security system for Linux that allows an administrator to
control access to files, various process actions, system calls and more.
One interesting feature of Medusa DS9 is the ability to redirect access
from one file to another instead, as well as useful in a security setting
it can be used with chrooting or for debugging programs. Like LIDS, NSA
SELinux, PitBull, SubDomain and so on Medusa allows for increased control
of processes and files on a given system, again no comparable software
is available for OpenBSD.
Conclusion
As you can see there is a large selection of security software Linux,
ranging from simple items like the Openwall kernel patch to very configurable
security suites like PitBull LX. These solutions are simply not available
for OpenBSD, so if you have needs beyond the basic User/Group/Other filesystem
restrictions for example you are basically out of luck. Restricting access
to port 80 for example, while easily achieved in Linux with NSA SELinux
or PitBull LX is basically impossible in OpenBSD. Protecting binary software
can be done in Linux with a variety of tools, doing so in OpenBSD is very
difficult (there is little you can do). Even with some of the most secure
source code in the world OpenBSD will not be capable of providing the
same levels of security and trust that a Linux system with the appropriate
software (i.e. NSA SELinux or PitBull) can. For a system to be both secure
and trusted you need both secure code and additional items that provide
Mandatory Access Controls, RBAC, Type enforcement and so on. This is why
OpenBSD will never be as secure as Linux.
Reference links:
20010912-immunixos-7.html - ImmunixOS 7 - Secure Linux
http://www.wirex.com/ - WireX communications
http://www.openwall.com/linux/ - Linux kernel patch from the Openwall
Project
http://www.argus-systems.com/product/overview/lx/ - PitBull LX
http://www.nsa.gov/selinux/ - NSA Security Enhanced Linux
http://www.lids.org/ - Linux Intrusion Detection System
http://medusa.fornax.sk/ - Medusa DS9
Last updated 8/11/2001
Copyright Kurt Seifried 2001
|